@CI
3年前 提问
1个回答

逻辑漏洞的支付漏洞是怎么回事

一颗小胡椒
3年前
官方采纳

支付漏洞的理解通常都是篡改价格。比如,一分钱买任何东西。少收款、企业收费产品被免费使用,直接造成企业的经济损失。

产生原因

开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。而这种金额后端没有做效验,传递过程中也没有做签名,导致可以随意篡改金额提交。只需抓包看到有金额的参数修改成任意即可。

漏洞原理

图片

一般支付流程:

用户用钱包加上优惠券/折扣券确认购买商品的单价、数量以及购买时间,提交给平台或商家确认无误后,确认支付信息,报告购买信息。其中有三个重要的因素:用户、商品、平台/商家。这三个因素在支付流程中都有可能造成支付漏洞。

修复防范

  • 对支付流程的每个环节进行校验,并且防止跳过某一个环节。
  • 用户确认购买后,立即验证商品价格(商品单价、商品数量、折扣优惠)、订单价格和到账金额。
  • 对一些优惠券、折扣券的使用方式进行测试。
  • 修复防范网站其他漏洞。